In microprocessors of the memory mapped I/O type, communication with external devices is accomplished by initially writing commands and output data to predetermined addresses within the address range of the microprocessors, and thereafter reading status and input data from the same or other predetermined addresses within that address range. In certain of these microprocessors, communication with external devices was made particularly efficient by dedicating the lowest addresses for such use. For example, in the Motorola MC6800, all addresses fully representable in eight (8) bits or less were reserved for such I/O functions. By assuming that all other upper address bits were zero, all I/O became possible using only addresses within this "page zero" and I/O commands could be compressed into two (2) word or "direct memory address mode" instructions, thus saving the fetching of the third or "extended address" word.
With the advent of single chip microcomputers, small amounts of no-chip, random-access, read/write memory became available to the user. In certain of these microcomputers, such as the MC6801, access to such read/write memory was similarly optimized by assigning some or all of the remaining addresses in "page zero" to such memory. As advances in technology allowed increased read/write memory and additional I/O control functions, it soon became impossible to fit both into "page zero". Since some users found it more desireable to have efficiency of access to the read/write memory rather than efficiency of I/O, microcomputers became available with either I/O or the read/write memory mapped into "page zero". Since each particular configuration had to be fabricated by the manufacturer using different mask sets, the user had to make his choice at the time his order was placed. If the choice later turned out to have been less than advantageous, the user either had to accept less than optimal performance or had to scrap his initial purchase and buy anew.
In some applications, the user may wish to integrate an additional microcomputer into an existing system which already has "page zero" dedicated to other functions. For example, in the Motorola EXORciser development system, all of "page zero" is assumed to be global read/write memory and certain key system variables are located therein. In such situations, the user will either have to pay a manufacturer to fabricate a special version of the preferred microcomputer, or select an existing, but otherwise less desirable, microcomputer which already has a compatible memory map.